package jnpf.service;


import jnpf.base.service.SuperService;
import jnpf.engine.enums.FlowTemplateRelationTypEnum;
import jnpf.entity.TemplateRelationEntity;

import java.util.List;
import java.util.Map;

/**
 * 模板关系 服务层。
 *
 * @author mybatis-flex-helper automatic generation
 * @since 1.0
 */
public interface TemplateRelationService extends SuperService<TemplateRelationEntity> {

    /**
     * 查询某类型的所有关联集合
     *
     * @param templateRelationTypEnum
     * @return
     */
    Map<String, List<String>> getTypeRelations(FlowTemplateRelationTypEnum templateRelationTypEnum);

    /**
     * 删除关联数据
     *
     * @param templateRelationTypEnum
     * @param objectId
     */
    void deleteByObjectId(FlowTemplateRelationTypEnum templateRelationTypEnum, String objectId);

    /**
     * 批量添加
     *
     * @param templateRelationTypEnum
     * @param organizeIds
     */
    Boolean insertBatch(FlowTemplateRelationTypEnum templateRelationTypEnum, List<String> organizeIds, String objectId);

    /**
     * 更新关系
     *
     * @param templateRelationTypEnum
     * @param organizeIds
     * @param objectId
     * @return
     */
    Boolean updateRelation(FlowTemplateRelationTypEnum templateRelationTypEnum, List<String> organizeIds, String objectId);

    /**
     * 通过机构id查询对应的业务id
     *
     * @param templateRelationTypEnum
     * @param organizeId
     * @return
     */
    List<String> getObjectIdsByOrganizeId(FlowTemplateRelationTypEnum templateRelationTypEnum, String organizeId);

}